package com.ruoyi.hr.controller.hr;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.util.ShiroUtils;
import com.ruoyi.hr.domain.Authority;
import com.ruoyi.hr.domain.Companys;
import com.ruoyi.hr.service.AuthorityService;
import com.ruoyi.hr.service.CompanysService;
import com.ruoyi.system.domain.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 公司信息控制层
 */
@Controller
@RequestMapping("/company/info")
public class CompanyController extends BaseController {

    @Autowired
    AuthorityService authorityService;

    @Autowired
    CompanysService companysService;


    private String prefix = "hr/orgsInfo";

    /**
     * 跳转分页页面
     */
    @GetMapping()
    public String user() {
        return prefix + "/compInfo";
    }

    @GetMapping("/compInfoSx")
    public String compInfoSx() {
        return prefix + "/compInfoSx";
    }

    /**
     * 根据权限及条件查询公司信息数据
     *
     * @param companys
     * @return
     */
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(Companys companys) {
        Authority authority = authorityService.findAuthorAndIsAdmin();
        startPage();
        return getDataTable(companysService.findAllByAuthority(companys,authority));
    }



    /**
     * 导出Excel
     *
     * @param companys
     * @return
     */
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(Companys companys) {
        SysUser user = ShiroUtils.getSysUser();
        List<Authority> authorityList = authorityService.getAuthorityUser(user.getUserId().toString());
        List<Companys> companysList = companysService.findExport(companys, authorityList);
        ExcelUtil<Companys> util = new ExcelUtil<Companys>(Companys.class);
        return util.exportExcel(companysList, "公司信息");
    }

    /**
     * 根据部门ID获取公司信息
     */
    @PostMapping("/findCompanyByDepId")
    @ResponseBody
    public Companys findCompanyByDepId(String depID){
        return companysService.findDepIDComp(depID);
    }
}
